High-level modeling system (HLMS) environments allow assembly, simulation, debugging, and translation of electronic designs into hardware. Traditionally, a model that is implemented using an HLMS is simulated using software functions that mimic the hardware behavior of the components, or “blocks,” that define the design. It is sometimes beneficial to use hardware, in combination with software, during a simulation. Hardware in the simulation loop may accelerate simulation speeds and enable real-time hardware verification of a design. In scenarios in which hardware is used, the HLMS has access to the software necessary to communicate and control an underlying hardware platform.
Some HLMS environments, for example, System Generator for DSP (“Sysgen”) from Xilinx, provide a translation pathway from a high-level model down to FPGA hardware. The type of hardware Sysgen produces depends on user configurations. Under some configurations, System Generator can produce a special type of hardware that can be brought into the HLMS environment and co-simulated with other HLMS blocks. During simulation, a run-time co-simulation block controls the underlying hardware through function calls, to a hardware interface layer.
Although hardware co-simulations may appreciably increase simulation speed, the actual throughput achieved between software-simulated blocks and a hardware-simulated block may be limited by overhead involved in transferring data between the simulation software running on a host workstation and the FPGA hardware. Much of the available bandwidth of the physical connection (e.g., PCI, USB, Ethernet) between the host workstation and the FPGA may be wasted when single scalar values are transferred during a transaction. For example, in some environments a new transaction may be required between the hardware interface layer and the co-simulation block for each co-simulation event, such as forcing data to a port or examining a port for data. When the number of simulation events is high, and the amount of data being transferred during each event is low, these transactions can become costly in terms of overhead. The overhead associated with initiating a transaction may become a bottleneck in HLMS simulation, especially for simulations involving high-bandwidth data streams such as video and audio streams.
The present invention may address one or more of the above issues.